package cn.wolfcode.luowowo.comment.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 景点评论
 */
@Setter
@Getter
@Document("scenic_comment")   //在MongoDB中文档名称(集合名)
public class ScenicComment implements Serializable {

    /** 普通评论 **/
    public static final Integer SCENIC_NOMAL_TYPE = 0;

    /** 回复评论 **/
    public static final Integer SCENIC_COMMENT_TYPE = 1;

    /** 评论类型 **/
    private Integer type = SCENIC_NOMAL_TYPE;

    /**
     * 评论状态
     * 2星以下差评 category=1
     * 3星中评 category=2
     * 4/5星好评 category=3
     * 带图片的 category=4
     **/
    private Integer category ;

    @Id  //文档id
    private String id;  //mongodb默认的是id
    private Long scenicId;  //景点id
    private String scenicName; //游记标题

    private Long userId;    //用户id
    private String username;  //用户名
    private String city;
    private int level;
    private String headUrl;     //头像

    private int rank;//星星数

    private String tupianUrl;//图片地址

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;    //创建时间
    private String comment;      //评论内容
    private int thumbupnum;     //点赞数

    /** 引用评论 **/
    private ScenicComment refComment;
    /**
     * 前端 用评论 comment点上 comments
     */
    private List<ScenicComment> comments = new ArrayList<>();  //评论 评论的评论

    private List<Long> thumbup = new ArrayList<>();  //点赞人的id

    private List<Long> collectIds = new ArrayList<>();  //收藏人的id

}
